package com.dms.modules.user.entity;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDateTime;

@Data
@EqualsAndHashCode(callSuper = false)
@TableName("user_address")
@ApiModel("用户地址")
public class UserAddress {
    
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("地址ID")
    private Long id;
    
    /**
     * 用户ID
     */
    @ApiModelProperty("用户ID")
    private Long userId;
    
    /**
     * 收货人姓名
     */
    @ApiModelProperty("收货人姓名")
    private String receiverName;
    
    /**
     * 收货人电话
     */
    @ApiModelProperty("收货人电话")
    private String receiverPhone;
    
    /**
     * 省份编码
     */
    @ApiModelProperty("省份编码")
    private String provinceCode;
    
    /**
     * 省份
     */
    @ApiModelProperty("省份")
    private String province;
    
    /**
     * 城市编码
     */
    @ApiModelProperty("城市编码")
    private String cityCode;
    
    /**
     * 城市
     */
    @ApiModelProperty("城市")
    private String city;
    
    /**
     * 区县编码
     */
    @ApiModelProperty("区县编码")
    private String districtCode;
    
    /**
     * 区/县
     */
    @ApiModelProperty("区/县")
    private String district;
    
    /**
     * 详细地址
     */
    @ApiModelProperty("详细地址")
    private String detailAddress;
    
    /**
     * 邮政编码
     */
    @ApiModelProperty("邮政编码")
    private String postCode;
    
    /**
     * 是否默认地址
     */
    @ApiModelProperty("是否默认地址：0-否 1-是")
    private Integer isDefault;
    
    /**
     * 地址标签（如：家、公司等）
     */
    @ApiModelProperty("地址标签（如：家、公司等）")
    private String label;
    
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    
    /**
     * 是否删除
     */
    @TableLogic
    @ApiModelProperty("是否删除")
    private Integer deleted;
} 